import cv2
import numpy as np
import pytesseract
from PIL import Image
image = cv2.imread('img_cut/001.png')                        #读入图片 
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)  	#二值化函数 
cv2.threshold(image, 140, 255, 0, image)  			#二值化函数 

cv2.namedWindow("Image")  							#图片显示框的名字 这行没啥用 
cv2.imshow("Image", image)  						#图片显示 

cv2.waitKey(0)  									
cv2.imwrite('two_result.jpg', image)    # 保存当前灰度值处理过后的文件 

# 识别文字
string = pytesseract.image_to_string(image,lang="chi_sim")
print(string)

# import cv2
# import numpy as np

# lenna = cv2.imread("img_cut/001.png")
# #读取图片
# #lenna为一个3维数组。具体代表含义如下
# row, col, channel = lenna.shape  
# #返回像素高度，像素宽度，和通道数一般为3

# #用一个二维数组表示每一个点的灰度
# lenna_gray = np.zeros((row, col))
# for r in range(row):
#     for l in range(col):
#         lenna_gray[r, l] = 1 / 3 * lenna[r, l, 0] + 1 / 3 * lenna[r, l, 1] + 1 / 3 * lenna[r, l, 2]
# #此方法为平均值法
# #除此之外还有其他多种方式将彩色图处理为灰度图
 
# lenna_gray[r, l] = 0.11 * lenna[r, l, 0] + 0.59 * lenna[r, l, 1] + 0.3 * lenna[r, l, 2]
# #加权平均值法
# lenna_binary = np.zeros_like(lenna_gray)
# #zeros_like表示生成一个维度同lenna_gray一样的全为0的张量
# threshold = 100
# for r in range(row):
#     for l in range(col):
#         if lenna_gray[r, l] >= threshold:
#             lenna_binary[r, l] = 255
#         else:
#             lenna_binary[r, l] = 0
 
# cv2.imshow("lenna_binary", lenna_binary.astype("uint8"))
# cv2.waitKey()
# image = cv2.cvtColor(lenna, cv2.COLOR_RGB2GRAY)  	#二值化函数 
# cv2.threshold(image, 140, 255, 0, image)  			#二值化函数 
# result = cv2.blur(image,(5,5))
 
# #上为均值模糊去噪方法。周围的都为均值
# #又称为低通滤波
 
# gaussianResult = cv2.GaussianBlur(image,(5,5),1.5)
 
# #上为高斯模糊去噪方法。在某些情况下，需要对一个像素的周围的像素给予更多的重视。因此，可通过分配权重来重新计算这些周围点的值。
# #(5,5)不可以随意指定，只能指定1,3,5,7.....等数字
# result = cv2.medianBlur(image,5)